package com.ruoyi.weiriya.service;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.weiriya.domain.WMemberChargeRecord;

import java.util.List;
import java.util.Map;

/**
 * 用户充电记录Service接口
 * 
 * @author lynn
 * @date 2023-08-01
 */
public interface IWMemberChargeRecordService extends IService<WMemberChargeRecord>
{

    /**
    * 开始充电（新增用户充电记录）
    * @param wMemberChargeRecord 参数条件
    * @return 操作结果
    */
    boolean saveWMemberChargeRecord(WMemberChargeRecord wMemberChargeRecord);


    /**
     * 结束充电（新增用户充电记录）
     * @param wMemberChargeRecord 参数条件
     * @return 操作结果
     */
    boolean updateWMemberChargeRecordById(WMemberChargeRecord wMemberChargeRecord);

    /**
     * 获取用户充电记录列表
     * @param wMemberChargeRecord 参数条件
     * @return 操作结果
     */
    List<WMemberChargeRecord> getList(WMemberChargeRecord wMemberChargeRecord);

    /**
     * 获取用户充电记录详情
     * @param id
     * @return 操作结果
     */
    WMemberChargeRecord getWMemberChargeRecordById(String id);

    /**
    * 一拖十开始充电
    * @param wMemberChargeRecord
    * @return 订单号
    */
    public String openTom(WMemberChargeRecord wMemberChargeRecord);

    /**
    * 查看一拖十充电桩状态
    * @param wMemberChargeRecord
    * @return 
    */
    Object detailCharger(WMemberChargeRecord wMemberChargeRecord);

    /**
     * 查看一拖二充电桩状态
     * @param wMemberChargeRecord
     * @return
     */
    Object socketTwoDetailCharger(WMemberChargeRecord wMemberChargeRecord);

    /**
    * 检查充电订单状态定时任务
    */
    void chargeCheckTask();

    /**
     * 汤姆达推送（回调）
     * @param object 参数
     * @return 返回参数
     */
    Map tomCommon(JSONObject object);

    /**
     * 一拖十订单状态定时任务
     */
    void tomChargeCheckTask();

    /**
     * 检查充电订单用户余额定时任务
     */
    void chargeAmountCheckTask();

    /**
     * 充电临时订单24小时结算
     */
    void timeoutSettlementTask();

}
